{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. Dependency libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from model.seg_hrnet import seg_hrnet\n",
    "from utils.loss import *\n",
    "from utils.metrics import *\n",
    "from dataloaders.generater import *\n",
    "import os\n",
    "from keras.callbacks import ModelCheckpoint, EarlyStopping\n",
    "from keras.optimizers import SGD\n",
    "from keras.callbacks import ReduceLROnPlateau\n",
    "from keras.utils.training_utils import multi_gpu_model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. Params"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# network params\n",
    "BatchSize = 8\n",
    "NumChannels = 3\n",
    "ImgHeight = 512\n",
    "ImgWidth = 512\n",
    "NumClass = 1\n",
    "\n",
    "# training params\n",
    "GPUs = '0, 1, 2, 3'\n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"] = GPUs\n",
    "Optimizer = 'Adam'  # SGD(lr=0.01, momentum=0.9, nesterov=True)\n",
    "Loss = ce_jaccard_loss\n",
    "Metrics = ['accuracy', iou]\n",
    "NumEpochs = 100\n",
    "Patience = 10\n",
    "\n",
    "# data params\n",
    "TrainImageDir = '/data/dh_zhu/cong/AerialImageDataset/train/images/'\n",
    "ValImageDir = '/data/dh_zhu/cong/AerialImageDataset/val/images/'\n",
    "\n",
    "# visualization params\n",
    "metric_list = ['acc', 'iou']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_1 (InputLayer)            (8, 512, 512, 3)     0                                            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_1 (Conv2D)               (8, 256, 256, 64)    1728        input_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_1 (BatchNor (8, 256, 256, 64)    256         conv2d_1[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "activation_1 (Activation)       (8, 256, 256, 64)    0           batch_normalization_1[0][0]      \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_2 (Conv2D)               (8, 256, 256, 64)    4096        activation_1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_2 (BatchNor (8, 256, 256, 64)    256         conv2d_2[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "activation_2 (Activation)       (8, 256, 256, 64)    0           batch_normalization_2[0][0]      \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_3 (Conv2D)               (8, 256, 256, 64)    36864       activation_2[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_3 (BatchNor (8, 256, 256, 64)    256         conv2d_3[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "activation_3 (Activation)       (8, 256, 256, 64)    0           batch_normalization_3[0][0]      \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_4 (Conv2D)               (8, 256, 256, 256)   16384       activation_3[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_5 (Conv2D)               (8, 256, 256, 256)   16384       activation_1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_4 (BatchNor (8, 256, 256, 256)   1024        conv2d_4[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_5 (BatchNor (8, 256, 256, 256)   1024        conv2d_5[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "add_1 (Add)                     (8, 256, 256, 256)   0           batch_normalization_4[0][0]      \n",
      "                                                                 batch_normalization_5[0][0]      \n",
      "__________________________________________________________________________________________________\n",
      "activation_4 (Activation)       (8, 256, 256, 256)   0           add_1[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_6 (Conv2D)               (8, 256, 256, 64)    16384       activation_4[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_6 (BatchNor (8, 256, 256, 64)    256         conv2d_6[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "activation_5 (Activation)       (8, 256, 256, 64)    0           batch_normalization_6[0][0]      \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_7 (Conv2D)               (8, 256, 256, 64)    36864       activation_5[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_7 (BatchNor (8, 256, 256, 64)    256         conv2d_7[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "activation_6 (Activation)       (8, 256, 256, 64)    0           batch_normalization_7[0][0]      \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_8 (Conv2D)               (8, 256, 256, 256)   16384       activation_6[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_8 (BatchNor (8, 256, 256, 256)   1024        conv2d_8[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "add_2 (Add)                     (8, 256, 256, 256)   0           batch_normalization_8[0][0]      \n",
      "                                                                 activation_4[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_7 (Activation)       (8, 256, 256, 256)   0           add_2[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_9 (Conv2D)               (8, 256, 256, 64)    16384       activation_7[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_9 (BatchNor (8, 256, 256, 64)    256         conv2d_9[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "activation_8 (Activation)       (8, 256, 256, 64)    0           batch_normalization_9[0][0]      \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_10 (Conv2D)              (8, 256, 256, 64)    36864       activation_8[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_10 (BatchNo (8, 256, 256, 64)    256         conv2d_10[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_9 (Activation)       (8, 256, 256, 64)    0           batch_normalization_10[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_11 (Conv2D)              (8, 256, 256, 256)   16384       activation_9[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_11 (BatchNo (8, 256, 256, 256)   1024        conv2d_11[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_3 (Add)                     (8, 256, 256, 256)   0           batch_normalization_11[0][0]     \n",
      "                                                                 activation_7[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_10 (Activation)      (8, 256, 256, 256)   0           add_3[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_12 (Conv2D)              (8, 256, 256, 64)    16384       activation_10[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_12 (BatchNo (8, 256, 256, 64)    256         conv2d_12[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_11 (Activation)      (8, 256, 256, 64)    0           batch_normalization_12[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_13 (Conv2D)              (8, 256, 256, 64)    36864       activation_11[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_13 (BatchNo (8, 256, 256, 64)    256         conv2d_13[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_12 (Activation)      (8, 256, 256, 64)    0           batch_normalization_13[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_14 (Conv2D)              (8, 256, 256, 256)   16384       activation_12[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_14 (BatchNo (8, 256, 256, 256)   1024        conv2d_14[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_4 (Add)                     (8, 256, 256, 256)   0           batch_normalization_14[0][0]     \n",
      "                                                                 activation_10[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_13 (Activation)      (8, 256, 256, 256)   0           add_4[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_16 (Conv2D)              (8, 128, 128, 64)    147456      activation_13[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_16 (BatchNo (8, 128, 128, 64)    256         conv2d_16[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_15 (Activation)      (8, 128, 128, 64)    0           batch_normalization_16[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_15 (Conv2D)              (8, 256, 256, 32)    73728       activation_13[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_25 (Conv2D)              (8, 128, 128, 64)    36864       activation_15[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_15 (BatchNo (8, 256, 256, 32)    128         conv2d_15[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_25 (BatchNo (8, 128, 128, 64)    256         conv2d_25[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_14 (Activation)      (8, 256, 256, 32)    0           batch_normalization_15[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_24 (Activation)      (8, 128, 128, 64)    0           batch_normalization_25[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_17 (Conv2D)              (8, 256, 256, 32)    9216        activation_14[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_26 (Conv2D)              (8, 128, 128, 64)    36864       activation_24[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_17 (BatchNo (8, 256, 256, 32)    128         conv2d_17[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_26 (BatchNo (8, 128, 128, 64)    256         conv2d_26[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_16 (Activation)      (8, 256, 256, 32)    0           batch_normalization_17[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_9 (Add)                     (8, 128, 128, 64)    0           batch_normalization_26[0][0]     \n",
      "                                                                 activation_15[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_18 (Conv2D)              (8, 256, 256, 32)    9216        activation_16[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_25 (Activation)      (8, 128, 128, 64)    0           add_9[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_18 (BatchNo (8, 256, 256, 32)    128         conv2d_18[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_27 (Conv2D)              (8, 128, 128, 64)    36864       activation_25[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_5 (Add)                     (8, 256, 256, 32)    0           batch_normalization_18[0][0]     \n",
      "                                                                 activation_14[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_27 (BatchNo (8, 128, 128, 64)    256         conv2d_27[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_17 (Activation)      (8, 256, 256, 32)    0           add_5[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "activation_26 (Activation)      (8, 128, 128, 64)    0           batch_normalization_27[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_19 (Conv2D)              (8, 256, 256, 32)    9216        activation_17[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_28 (Conv2D)              (8, 128, 128, 64)    36864       activation_26[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_19 (BatchNo (8, 256, 256, 32)    128         conv2d_19[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_28 (BatchNo (8, 128, 128, 64)    256         conv2d_28[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_18 (Activation)      (8, 256, 256, 32)    0           batch_normalization_19[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_10 (Add)                    (8, 128, 128, 64)    0           batch_normalization_28[0][0]     \n",
      "                                                                 activation_25[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_20 (Conv2D)              (8, 256, 256, 32)    9216        activation_18[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_27 (Activation)      (8, 128, 128, 64)    0           add_10[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_20 (BatchNo (8, 256, 256, 32)    128         conv2d_20[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_29 (Conv2D)              (8, 128, 128, 64)    36864       activation_27[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_6 (Add)                     (8, 256, 256, 32)    0           batch_normalization_20[0][0]     \n",
      "                                                                 activation_17[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_29 (BatchNo (8, 128, 128, 64)    256         conv2d_29[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_19 (Activation)      (8, 256, 256, 32)    0           add_6[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "activation_28 (Activation)      (8, 128, 128, 64)    0           batch_normalization_29[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_21 (Conv2D)              (8, 256, 256, 32)    9216        activation_19[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_30 (Conv2D)              (8, 128, 128, 64)    36864       activation_28[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_21 (BatchNo (8, 256, 256, 32)    128         conv2d_21[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_30 (BatchNo (8, 128, 128, 64)    256         conv2d_30[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_20 (Activation)      (8, 256, 256, 32)    0           batch_normalization_21[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_11 (Add)                    (8, 128, 128, 64)    0           batch_normalization_30[0][0]     \n",
      "                                                                 activation_27[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_22 (Conv2D)              (8, 256, 256, 32)    9216        activation_20[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_29 (Activation)      (8, 128, 128, 64)    0           add_11[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_22 (BatchNo (8, 256, 256, 32)    128         conv2d_22[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_31 (Conv2D)              (8, 128, 128, 64)    36864       activation_29[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_7 (Add)                     (8, 256, 256, 32)    0           batch_normalization_22[0][0]     \n",
      "                                                                 activation_19[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_31 (BatchNo (8, 128, 128, 64)    256         conv2d_31[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_21 (Activation)      (8, 256, 256, 32)    0           add_7[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "activation_30 (Activation)      (8, 128, 128, 64)    0           batch_normalization_31[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_23 (Conv2D)              (8, 256, 256, 32)    9216        activation_21[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_32 (Conv2D)              (8, 128, 128, 64)    36864       activation_30[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_23 (BatchNo (8, 256, 256, 32)    128         conv2d_23[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_32 (BatchNo (8, 128, 128, 64)    256         conv2d_32[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_22 (Activation)      (8, 256, 256, 32)    0           batch_normalization_23[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_12 (Add)                    (8, 128, 128, 64)    0           batch_normalization_32[0][0]     \n",
      "                                                                 activation_29[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_24 (Conv2D)              (8, 256, 256, 32)    9216        activation_22[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_31 (Activation)      (8, 128, 128, 64)    0           add_12[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_24 (BatchNo (8, 256, 256, 32)    128         conv2d_24[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_33 (Conv2D)              (8, 128, 128, 32)    2048        activation_31[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_8 (Add)                     (8, 256, 256, 32)    0           batch_normalization_24[0][0]     \n",
      "                                                                 activation_21[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_33 (BatchNo (8, 128, 128, 32)    128         conv2d_33[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_23 (Activation)      (8, 256, 256, 32)    0           add_8[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_1 (UpSampling2D)  (8, 256, 256, 32)    0           batch_normalization_33[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_13 (Add)                    (8, 256, 256, 32)    0           activation_23[0][0]              \n",
      "                                                                 up_sampling2d_1[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_34 (Conv2D)              (8, 128, 128, 64)    18432       activation_23[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_35 (Conv2D)              (8, 256, 256, 32)    9216        add_13[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_34 (BatchNo (8, 128, 128, 64)    256         conv2d_34[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_35 (BatchNo (8, 256, 256, 32)    128         conv2d_35[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_14 (Add)                    (8, 128, 128, 64)    0           batch_normalization_34[0][0]     \n",
      "                                                                 activation_31[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_32 (Activation)      (8, 256, 256, 32)    0           batch_normalization_35[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_37 (Conv2D)              (8, 64, 64, 128)     73728       add_14[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_38 (Conv2D)              (8, 256, 256, 32)    9216        activation_32[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_36 (Conv2D)              (8, 128, 128, 64)    36864       add_14[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_37 (BatchNo (8, 64, 64, 128)     512         conv2d_37[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_38 (BatchNo (8, 256, 256, 32)    128         conv2d_38[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_36 (BatchNo (8, 128, 128, 64)    256         conv2d_36[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_34 (Activation)      (8, 64, 64, 128)     0           batch_normalization_37[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_35 (Activation)      (8, 256, 256, 32)    0           batch_normalization_38[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_33 (Activation)      (8, 128, 128, 64)    0           batch_normalization_36[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_54 (Conv2D)              (8, 64, 64, 128)     147456      activation_34[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_39 (Conv2D)              (8, 256, 256, 32)    9216        activation_35[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_46 (Conv2D)              (8, 128, 128, 64)    36864       activation_33[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_54 (BatchNo (8, 64, 64, 128)     512         conv2d_54[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_39 (BatchNo (8, 256, 256, 32)    128         conv2d_39[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_46 (BatchNo (8, 128, 128, 64)    256         conv2d_46[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_51 (Activation)      (8, 64, 64, 128)     0           batch_normalization_54[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_15 (Add)                    (8, 256, 256, 32)    0           batch_normalization_39[0][0]     \n",
      "                                                                 activation_32[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_43 (Activation)      (8, 128, 128, 64)    0           batch_normalization_46[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_55 (Conv2D)              (8, 64, 64, 128)     147456      activation_51[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_36 (Activation)      (8, 256, 256, 32)    0           add_15[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_47 (Conv2D)              (8, 128, 128, 64)    36864       activation_43[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_55 (BatchNo (8, 64, 64, 128)     512         conv2d_55[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_40 (Conv2D)              (8, 256, 256, 32)    9216        activation_36[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_47 (BatchNo (8, 128, 128, 64)    256         conv2d_47[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_23 (Add)                    (8, 64, 64, 128)     0           batch_normalization_55[0][0]     \n",
      "                                                                 activation_34[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_40 (BatchNo (8, 256, 256, 32)    128         conv2d_40[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_19 (Add)                    (8, 128, 128, 64)    0           batch_normalization_47[0][0]     \n",
      "                                                                 activation_33[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_52 (Activation)      (8, 64, 64, 128)     0           add_23[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_37 (Activation)      (8, 256, 256, 32)    0           batch_normalization_40[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_44 (Activation)      (8, 128, 128, 64)    0           add_19[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_56 (Conv2D)              (8, 64, 64, 128)     147456      activation_52[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_41 (Conv2D)              (8, 256, 256, 32)    9216        activation_37[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_48 (Conv2D)              (8, 128, 128, 64)    36864       activation_44[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_56 (BatchNo (8, 64, 64, 128)     512         conv2d_56[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_41 (BatchNo (8, 256, 256, 32)    128         conv2d_41[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_48 (BatchNo (8, 128, 128, 64)    256         conv2d_48[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_53 (Activation)      (8, 64, 64, 128)     0           batch_normalization_56[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_16 (Add)                    (8, 256, 256, 32)    0           batch_normalization_41[0][0]     \n",
      "                                                                 activation_36[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_45 (Activation)      (8, 128, 128, 64)    0           batch_normalization_48[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_57 (Conv2D)              (8, 64, 64, 128)     147456      activation_53[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_38 (Activation)      (8, 256, 256, 32)    0           add_16[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_49 (Conv2D)              (8, 128, 128, 64)    36864       activation_45[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_57 (BatchNo (8, 64, 64, 128)     512         conv2d_57[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_42 (Conv2D)              (8, 256, 256, 32)    9216        activation_38[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_49 (BatchNo (8, 128, 128, 64)    256         conv2d_49[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_24 (Add)                    (8, 64, 64, 128)     0           batch_normalization_57[0][0]     \n",
      "                                                                 activation_52[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_42 (BatchNo (8, 256, 256, 32)    128         conv2d_42[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_20 (Add)                    (8, 128, 128, 64)    0           batch_normalization_49[0][0]     \n",
      "                                                                 activation_44[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_54 (Activation)      (8, 64, 64, 128)     0           add_24[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_39 (Activation)      (8, 256, 256, 32)    0           batch_normalization_42[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_46 (Activation)      (8, 128, 128, 64)    0           add_20[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_58 (Conv2D)              (8, 64, 64, 128)     147456      activation_54[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_43 (Conv2D)              (8, 256, 256, 32)    9216        activation_39[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_50 (Conv2D)              (8, 128, 128, 64)    36864       activation_46[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_58 (BatchNo (8, 64, 64, 128)     512         conv2d_58[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_43 (BatchNo (8, 256, 256, 32)    128         conv2d_43[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_50 (BatchNo (8, 128, 128, 64)    256         conv2d_50[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_55 (Activation)      (8, 64, 64, 128)     0           batch_normalization_58[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_17 (Add)                    (8, 256, 256, 32)    0           batch_normalization_43[0][0]     \n",
      "                                                                 activation_38[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_47 (Activation)      (8, 128, 128, 64)    0           batch_normalization_50[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_59 (Conv2D)              (8, 64, 64, 128)     147456      activation_55[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_40 (Activation)      (8, 256, 256, 32)    0           add_17[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_51 (Conv2D)              (8, 128, 128, 64)    36864       activation_47[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_59 (BatchNo (8, 64, 64, 128)     512         conv2d_59[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_44 (Conv2D)              (8, 256, 256, 32)    9216        activation_40[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_51 (BatchNo (8, 128, 128, 64)    256         conv2d_51[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_25 (Add)                    (8, 64, 64, 128)     0           batch_normalization_59[0][0]     \n",
      "                                                                 activation_54[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_44 (BatchNo (8, 256, 256, 32)    128         conv2d_44[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_21 (Add)                    (8, 128, 128, 64)    0           batch_normalization_51[0][0]     \n",
      "                                                                 activation_46[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_56 (Activation)      (8, 64, 64, 128)     0           add_25[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_41 (Activation)      (8, 256, 256, 32)    0           batch_normalization_44[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_48 (Activation)      (8, 128, 128, 64)    0           add_21[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_60 (Conv2D)              (8, 64, 64, 128)     147456      activation_56[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_45 (Conv2D)              (8, 256, 256, 32)    9216        activation_41[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_52 (Conv2D)              (8, 128, 128, 64)    36864       activation_48[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_60 (BatchNo (8, 64, 64, 128)     512         conv2d_60[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_45 (BatchNo (8, 256, 256, 32)    128         conv2d_45[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_52 (BatchNo (8, 128, 128, 64)    256         conv2d_52[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_57 (Activation)      (8, 64, 64, 128)     0           batch_normalization_60[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_18 (Add)                    (8, 256, 256, 32)    0           batch_normalization_45[0][0]     \n",
      "                                                                 activation_40[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_49 (Activation)      (8, 128, 128, 64)    0           batch_normalization_52[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_61 (Conv2D)              (8, 64, 64, 128)     147456      activation_57[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_42 (Activation)      (8, 256, 256, 32)    0           add_18[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_53 (Conv2D)              (8, 128, 128, 64)    36864       activation_49[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_61 (BatchNo (8, 64, 64, 128)     512         conv2d_61[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_53 (BatchNo (8, 128, 128, 64)    256         conv2d_53[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_26 (Add)                    (8, 64, 64, 128)     0           batch_normalization_61[0][0]     \n",
      "                                                                 activation_56[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_66 (Conv2D)              (8, 128, 128, 32)    9216        activation_42[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_22 (Add)                    (8, 128, 128, 64)    0           batch_normalization_53[0][0]     \n",
      "                                                                 activation_48[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_58 (Activation)      (8, 64, 64, 128)     0           add_26[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_66 (BatchNo (8, 128, 128, 32)    128         conv2d_66[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_50 (Activation)      (8, 128, 128, 64)    0           add_22[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_65 (Conv2D)              (8, 64, 64, 64)      8192        activation_58[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_59 (Activation)      (8, 128, 128, 32)    0           batch_normalization_66[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_64 (Conv2D)              (8, 128, 128, 64)    18432       activation_42[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_65 (BatchNo (8, 64, 64, 64)      256         conv2d_65[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_67 (Conv2D)              (8, 64, 64, 128)     36864       activation_59[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_68 (Conv2D)              (8, 64, 64, 128)     73728       activation_50[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_64 (BatchNo (8, 128, 128, 64)    256         conv2d_64[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_4 (UpSampling2D)  (8, 128, 128, 64)    0           batch_normalization_65[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_67 (BatchNo (8, 64, 64, 128)     512         conv2d_67[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_68 (BatchNo (8, 64, 64, 128)     512         conv2d_68[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_62 (Conv2D)              (8, 128, 128, 32)    2048        activation_50[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_63 (Conv2D)              (8, 64, 64, 32)      4096        activation_58[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_28 (Add)                    (8, 128, 128, 64)    0           batch_normalization_64[0][0]     \n",
      "                                                                 activation_50[0][0]              \n",
      "                                                                 up_sampling2d_4[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "add_29 (Add)                    (8, 64, 64, 128)     0           batch_normalization_67[0][0]     \n",
      "                                                                 batch_normalization_68[0][0]     \n",
      "                                                                 activation_58[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_62 (BatchNo (8, 128, 128, 32)    128         conv2d_62[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_63 (BatchNo (8, 64, 64, 32)      128         conv2d_63[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_70 (Conv2D)              (8, 128, 128, 64)    36864       add_28[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_71 (Conv2D)              (8, 64, 64, 128)     147456      add_29[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_72 (Conv2D)              (8, 32, 32, 256)     294912      add_29[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_2 (UpSampling2D)  (8, 256, 256, 32)    0           batch_normalization_62[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_3 (UpSampling2D)  (8, 256, 256, 32)    0           batch_normalization_63[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_70 (BatchNo (8, 128, 128, 64)    256         conv2d_70[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_71 (BatchNo (8, 64, 64, 128)     512         conv2d_71[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_72 (BatchNo (8, 32, 32, 256)     1024        conv2d_72[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "add_27 (Add)                    (8, 256, 256, 32)    0           activation_42[0][0]              \n",
      "                                                                 up_sampling2d_2[0][0]            \n",
      "                                                                 up_sampling2d_3[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "activation_61 (Activation)      (8, 128, 128, 64)    0           batch_normalization_70[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_62 (Activation)      (8, 64, 64, 128)     0           batch_normalization_71[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_63 (Activation)      (8, 32, 32, 256)     0           batch_normalization_72[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_69 (Conv2D)              (8, 256, 256, 32)    9216        add_27[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_81 (Conv2D)              (8, 128, 128, 64)    36864       activation_61[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_89 (Conv2D)              (8, 64, 64, 128)     147456      activation_62[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_97 (Conv2D)              (8, 32, 32, 256)     589824      activation_63[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_69 (BatchNo (8, 256, 256, 32)    128         conv2d_69[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_81 (BatchNo (8, 128, 128, 64)    256         conv2d_81[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_89 (BatchNo (8, 64, 64, 128)     512         conv2d_89[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_97 (BatchNo (8, 32, 32, 256)     1024        conv2d_97[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_60 (Activation)      (8, 256, 256, 32)    0           batch_normalization_69[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_72 (Activation)      (8, 128, 128, 64)    0           batch_normalization_81[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_80 (Activation)      (8, 64, 64, 128)     0           batch_normalization_89[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_88 (Activation)      (8, 32, 32, 256)     0           batch_normalization_97[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_73 (Conv2D)              (8, 256, 256, 32)    9216        activation_60[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_82 (Conv2D)              (8, 128, 128, 64)    36864       activation_72[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_90 (Conv2D)              (8, 64, 64, 128)     147456      activation_80[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_98 (Conv2D)              (8, 32, 32, 256)     589824      activation_88[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_73 (BatchNo (8, 256, 256, 32)    128         conv2d_73[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_82 (BatchNo (8, 128, 128, 64)    256         conv2d_82[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_90 (BatchNo (8, 64, 64, 128)     512         conv2d_90[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_98 (BatchNo (8, 32, 32, 256)     1024        conv2d_98[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_64 (Activation)      (8, 256, 256, 32)    0           batch_normalization_73[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_34 (Add)                    (8, 128, 128, 64)    0           batch_normalization_82[0][0]     \n",
      "                                                                 activation_61[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_38 (Add)                    (8, 64, 64, 128)     0           batch_normalization_90[0][0]     \n",
      "                                                                 activation_62[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_42 (Add)                    (8, 32, 32, 256)     0           batch_normalization_98[0][0]     \n",
      "                                                                 activation_63[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_74 (Conv2D)              (8, 256, 256, 32)    9216        activation_64[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_73 (Activation)      (8, 128, 128, 64)    0           add_34[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_81 (Activation)      (8, 64, 64, 128)     0           add_38[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_89 (Activation)      (8, 32, 32, 256)     0           add_42[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_74 (BatchNo (8, 256, 256, 32)    128         conv2d_74[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_83 (Conv2D)              (8, 128, 128, 64)    36864       activation_73[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_91 (Conv2D)              (8, 64, 64, 128)     147456      activation_81[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_99 (Conv2D)              (8, 32, 32, 256)     589824      activation_89[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_30 (Add)                    (8, 256, 256, 32)    0           batch_normalization_74[0][0]     \n",
      "                                                                 activation_60[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_83 (BatchNo (8, 128, 128, 64)    256         conv2d_83[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_91 (BatchNo (8, 64, 64, 128)     512         conv2d_91[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_99 (BatchNo (8, 32, 32, 256)     1024        conv2d_99[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "activation_65 (Activation)      (8, 256, 256, 32)    0           add_30[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_74 (Activation)      (8, 128, 128, 64)    0           batch_normalization_83[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_82 (Activation)      (8, 64, 64, 128)     0           batch_normalization_91[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_90 (Activation)      (8, 32, 32, 256)     0           batch_normalization_99[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_75 (Conv2D)              (8, 256, 256, 32)    9216        activation_65[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_84 (Conv2D)              (8, 128, 128, 64)    36864       activation_74[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_92 (Conv2D)              (8, 64, 64, 128)     147456      activation_82[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_100 (Conv2D)             (8, 32, 32, 256)     589824      activation_90[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_75 (BatchNo (8, 256, 256, 32)    128         conv2d_75[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_84 (BatchNo (8, 128, 128, 64)    256         conv2d_84[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_92 (BatchNo (8, 64, 64, 128)     512         conv2d_92[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_100 (BatchN (8, 32, 32, 256)     1024        conv2d_100[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "activation_66 (Activation)      (8, 256, 256, 32)    0           batch_normalization_75[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_35 (Add)                    (8, 128, 128, 64)    0           batch_normalization_84[0][0]     \n",
      "                                                                 activation_73[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_39 (Add)                    (8, 64, 64, 128)     0           batch_normalization_92[0][0]     \n",
      "                                                                 activation_81[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_43 (Add)                    (8, 32, 32, 256)     0           batch_normalization_100[0][0]    \n",
      "                                                                 activation_89[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_76 (Conv2D)              (8, 256, 256, 32)    9216        activation_66[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_75 (Activation)      (8, 128, 128, 64)    0           add_35[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_83 (Activation)      (8, 64, 64, 128)     0           add_39[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_91 (Activation)      (8, 32, 32, 256)     0           add_43[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_76 (BatchNo (8, 256, 256, 32)    128         conv2d_76[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_85 (Conv2D)              (8, 128, 128, 64)    36864       activation_75[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_93 (Conv2D)              (8, 64, 64, 128)     147456      activation_83[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_101 (Conv2D)             (8, 32, 32, 256)     589824      activation_91[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_31 (Add)                    (8, 256, 256, 32)    0           batch_normalization_76[0][0]     \n",
      "                                                                 activation_65[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_85 (BatchNo (8, 128, 128, 64)    256         conv2d_85[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_93 (BatchNo (8, 64, 64, 128)     512         conv2d_93[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_101 (BatchN (8, 32, 32, 256)     1024        conv2d_101[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "activation_67 (Activation)      (8, 256, 256, 32)    0           add_31[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_76 (Activation)      (8, 128, 128, 64)    0           batch_normalization_85[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_84 (Activation)      (8, 64, 64, 128)     0           batch_normalization_93[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_92 (Activation)      (8, 32, 32, 256)     0           batch_normalization_101[0][0]    \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_77 (Conv2D)              (8, 256, 256, 32)    9216        activation_67[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_86 (Conv2D)              (8, 128, 128, 64)    36864       activation_76[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_94 (Conv2D)              (8, 64, 64, 128)     147456      activation_84[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_102 (Conv2D)             (8, 32, 32, 256)     589824      activation_92[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_77 (BatchNo (8, 256, 256, 32)    128         conv2d_77[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_86 (BatchNo (8, 128, 128, 64)    256         conv2d_86[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_94 (BatchNo (8, 64, 64, 128)     512         conv2d_94[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_102 (BatchN (8, 32, 32, 256)     1024        conv2d_102[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "activation_68 (Activation)      (8, 256, 256, 32)    0           batch_normalization_77[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_36 (Add)                    (8, 128, 128, 64)    0           batch_normalization_86[0][0]     \n",
      "                                                                 activation_75[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_40 (Add)                    (8, 64, 64, 128)     0           batch_normalization_94[0][0]     \n",
      "                                                                 activation_83[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_44 (Add)                    (8, 32, 32, 256)     0           batch_normalization_102[0][0]    \n",
      "                                                                 activation_91[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_78 (Conv2D)              (8, 256, 256, 32)    9216        activation_68[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_77 (Activation)      (8, 128, 128, 64)    0           add_36[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_85 (Activation)      (8, 64, 64, 128)     0           add_40[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_93 (Activation)      (8, 32, 32, 256)     0           add_44[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_78 (BatchNo (8, 256, 256, 32)    128         conv2d_78[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_87 (Conv2D)              (8, 128, 128, 64)    36864       activation_77[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_95 (Conv2D)              (8, 64, 64, 128)     147456      activation_85[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_103 (Conv2D)             (8, 32, 32, 256)     589824      activation_93[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_32 (Add)                    (8, 256, 256, 32)    0           batch_normalization_78[0][0]     \n",
      "                                                                 activation_67[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_87 (BatchNo (8, 128, 128, 64)    256         conv2d_87[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_95 (BatchNo (8, 64, 64, 128)     512         conv2d_95[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_103 (BatchN (8, 32, 32, 256)     1024        conv2d_103[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "activation_69 (Activation)      (8, 256, 256, 32)    0           add_32[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_78 (Activation)      (8, 128, 128, 64)    0           batch_normalization_87[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_86 (Activation)      (8, 64, 64, 128)     0           batch_normalization_95[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "activation_94 (Activation)      (8, 32, 32, 256)     0           batch_normalization_103[0][0]    \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_79 (Conv2D)              (8, 256, 256, 32)    9216        activation_69[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_88 (Conv2D)              (8, 128, 128, 64)    36864       activation_78[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_96 (Conv2D)              (8, 64, 64, 128)     147456      activation_86[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_104 (Conv2D)             (8, 32, 32, 256)     589824      activation_94[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_79 (BatchNo (8, 256, 256, 32)    128         conv2d_79[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_88 (BatchNo (8, 128, 128, 64)    256         conv2d_88[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_96 (BatchNo (8, 64, 64, 128)     512         conv2d_96[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_104 (BatchN (8, 32, 32, 256)     1024        conv2d_104[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "activation_70 (Activation)      (8, 256, 256, 32)    0           batch_normalization_79[0][0]     \n",
      "__________________________________________________________________________________________________\n",
      "add_37 (Add)                    (8, 128, 128, 64)    0           batch_normalization_88[0][0]     \n",
      "                                                                 activation_77[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_41 (Add)                    (8, 64, 64, 128)     0           batch_normalization_96[0][0]     \n",
      "                                                                 activation_85[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_45 (Add)                    (8, 32, 32, 256)     0           batch_normalization_104[0][0]    \n",
      "                                                                 activation_93[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_80 (Conv2D)              (8, 256, 256, 32)    9216        activation_70[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_79 (Activation)      (8, 128, 128, 64)    0           add_37[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_87 (Activation)      (8, 64, 64, 128)     0           add_41[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "activation_95 (Activation)      (8, 32, 32, 256)     0           add_45[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_80 (BatchNo (8, 256, 256, 32)    128         conv2d_80[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_105 (Conv2D)             (8, 128, 128, 32)    2048        activation_79[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_106 (Conv2D)             (8, 64, 64, 32)      4096        activation_87[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_107 (Conv2D)             (8, 32, 32, 32)      8192        activation_95[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_33 (Add)                    (8, 256, 256, 32)    0           batch_normalization_80[0][0]     \n",
      "                                                                 activation_69[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_105 (BatchN (8, 128, 128, 32)    128         conv2d_105[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_106 (BatchN (8, 64, 64, 32)      128         conv2d_106[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_107 (BatchN (8, 32, 32, 32)      128         conv2d_107[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "activation_71 (Activation)      (8, 256, 256, 32)    0           add_33[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_5 (UpSampling2D)  (8, 256, 256, 32)    0           batch_normalization_105[0][0]    \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_6 (UpSampling2D)  (8, 256, 256, 32)    0           batch_normalization_106[0][0]    \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_7 (UpSampling2D)  (8, 256, 256, 32)    0           batch_normalization_107[0][0]    \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_1 (Concatenate)     (8, 256, 256, 128)   0           activation_71[0][0]              \n",
      "                                                                 up_sampling2d_5[0][0]            \n",
      "                                                                 up_sampling2d_6[0][0]            \n",
      "                                                                 up_sampling2d_7[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "up_sampling2d_8 (UpSampling2D)  (8, 512, 512, 128)   0           concatenate_1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_108 (Conv2D)             (8, 512, 512, 1)     128         up_sampling2d_8[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_108 (BatchN (8, 512, 512, 1)     4           conv2d_108[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "Classification (Activation)     (8, 512, 512, 1)     0           batch_normalization_108[0][0]    \n",
      "==================================================================================================\n",
      "Total params: 9,524,036\n",
      "Trainable params: 9,504,578\n",
      "Non-trainable params: 19,458\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model = seg_hrnet(BatchSize, ImgHeight, ImgWidth, NumChannels, NumClass)\n",
    "model.summary()\n",
    "# model.load_weights('seg_hrnet-08-4.2117-0.9428-0.4832.hdf5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "class ParallelModelCheckpoint(ModelCheckpoint):\n",
    "    def __init__(self,model,filepath, monitor='val_loss', verbose=0,\n",
    "                 save_best_only=False, save_weights_only=False,\n",
    "                 mode='auto', period=1):\n",
    "        self.single_model = model\n",
    "        super(ParallelModelCheckpoint,self).__init__(filepath, monitor, verbose,save_best_only, save_weights_only,mode, period)\n",
    "\n",
    "    def set_model(self, model):\n",
    "        super(ParallelModelCheckpoint,self).set_model(self.single_model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "paralle_model = multi_gpu_model(model, gpus=4)\n",
    "paralle_model.compile(optimizer=Optimizer, loss=Loss, metrics=Metrics)\n",
    "model_path = \"seg_hrnet-{epoch:02d}-{val_loss:.4f}-{val_acc:.4f}-{val_iou:.4f}.hdf5\"\n",
    "model_checkpoint = ParallelModelCheckpoint(model, model_path, monitor='val_loss', mode='min', verbose=1, save_best_only=False)\n",
    "# model_checkpoint = ModelCheckpoint(model_path, monitor='val_loss', mode='min', verbose=1, save_best_only=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "early_stop = EarlyStopping(monitor='val_loss', mode='min', patience=Patience)\n",
    "reduce_lr = ReduceLROnPlateau(monitor='val_loss', mode='min', factor=0.1, patience=2)\n",
    "check_point_list = [model_checkpoint, early_stop, reduce_lr]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_paths, val_paths = get_data_paths(TrainImageDir, ValImageDir)\n",
    "train_steps = len(train_paths) // BatchSize\n",
    "val_steps = len(val_paths) // BatchSize"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/100\n",
      "3274/3274 [==============================] - 2152s 657ms/step - loss: 1.5324 - acc: 0.8572 - iou: 0.3587 - val_loss: 1.0127 - val_acc: 0.9266 - val_iou: 0.4706\n",
      "\n",
      "Epoch 00001: saving model to seg_hrnet-01-1.0127-0.9266-0.4706.hdf5\n",
      "Epoch 2/100\n",
      "3274/3274 [==============================] - 2023s 618ms/step - loss: 0.9668 - acc: 0.9173 - iou: 0.5295 - val_loss: 0.8058 - val_acc: 0.9379 - val_iou: 0.5715\n",
      "\n",
      "Epoch 00002: saving model to seg_hrnet-02-0.8058-0.9379-0.5715.hdf5\n",
      "Epoch 3/100\n",
      "3274/3274 [==============================] - 2021s 617ms/step - loss: 0.8289 - acc: 0.9271 - iou: 0.5866 - val_loss: 0.8632 - val_acc: 0.9347 - val_iou: 0.5401\n",
      "\n",
      "Epoch 00003: saving model to seg_hrnet-03-0.8632-0.9347-0.5401.hdf5\n",
      "Epoch 4/100\n",
      "3274/3274 [==============================] - 2022s 618ms/step - loss: 0.7643 - acc: 0.9318 - iou: 0.6135 - val_loss: 0.8695 - val_acc: 0.9243 - val_iou: 0.5511\n",
      "\n",
      "Epoch 00004: saving model to seg_hrnet-04-0.8695-0.9243-0.5511.hdf5\n",
      "Epoch 5/100\n",
      "3274/3274 [==============================] - 2033s 621ms/step - loss: 0.6500 - acc: 0.9419 - iou: 0.6605 - val_loss: 0.6171 - val_acc: 0.9504 - val_iou: 0.6484\n",
      "\n",
      "Epoch 00005: saving model to seg_hrnet-05-0.6171-0.9504-0.6484.hdf5\n",
      "Epoch 6/100\n",
      "3274/3274 [==============================] - 2030s 620ms/step - loss: 0.6287 - acc: 0.9438 - iou: 0.6697 - val_loss: 0.6175 - val_acc: 0.9501 - val_iou: 0.6487\n",
      "\n",
      "Epoch 00006: saving model to seg_hrnet-06-0.6175-0.9501-0.6487.hdf5\n",
      "Epoch 7/100\n",
      "3274/3274 [==============================] - 2028s 619ms/step - loss: 0.6132 - acc: 0.9453 - iou: 0.6765 - val_loss: 0.5952 - val_acc: 0.9521 - val_iou: 0.6598\n",
      "\n",
      "Epoch 00007: saving model to seg_hrnet-07-0.5952-0.9521-0.6598.hdf5\n",
      "Epoch 8/100\n",
      "3274/3274 [==============================] - 2031s 620ms/step - loss: 0.6060 - acc: 0.9456 - iou: 0.6803 - val_loss: 0.6002 - val_acc: 0.9520 - val_iou: 0.6565\n",
      "\n",
      "Epoch 00008: saving model to seg_hrnet-08-0.6002-0.9520-0.6565.hdf5\n",
      "Epoch 9/100\n",
      "3274/3274 [==============================] - 2029s 620ms/step - loss: 0.5988 - acc: 0.9465 - iou: 0.6835 - val_loss: 0.6002 - val_acc: 0.9519 - val_iou: 0.6562\n",
      "\n",
      "Epoch 00009: saving model to seg_hrnet-09-0.6002-0.9519-0.6562.hdf5\n",
      "Epoch 10/100\n",
      "3274/3274 [==============================] - 2029s 620ms/step - loss: 0.5817 - acc: 0.9480 - iou: 0.6902 - val_loss: 0.5943 - val_acc: 0.9525 - val_iou: 0.6584\n",
      "\n",
      "Epoch 00010: saving model to seg_hrnet-10-0.5943-0.9525-0.6584.hdf5\n",
      "Epoch 11/100\n",
      "3274/3274 [==============================] - 2035s 621ms/step - loss: 0.5821 - acc: 0.9480 - iou: 0.6907 - val_loss: 0.5939 - val_acc: 0.9524 - val_iou: 0.6591\n",
      "\n",
      "Epoch 00011: saving model to seg_hrnet-11-0.5939-0.9524-0.6591.hdf5\n",
      "Epoch 12/100\n",
      "3274/3274 [==============================] - 2031s 620ms/step - loss: 0.5779 - acc: 0.9483 - iou: 0.6926 - val_loss: 0.5955 - val_acc: 0.9524 - val_iou: 0.6578\n",
      "\n",
      "Epoch 00012: saving model to seg_hrnet-12-0.5955-0.9524-0.6578.hdf5\n",
      "Epoch 13/100\n",
      "3274/3274 [==============================] - 2032s 621ms/step - loss: 0.5754 - acc: 0.9483 - iou: 0.6937 - val_loss: 0.5902 - val_acc: 0.9526 - val_iou: 0.6603\n",
      "\n",
      "Epoch 00013: saving model to seg_hrnet-13-0.5902-0.9526-0.6603.hdf5\n",
      "Epoch 14/100\n",
      "3274/3274 [==============================] - 2028s 619ms/step - loss: 0.5772 - acc: 0.9484 - iou: 0.6926 - val_loss: 0.5884 - val_acc: 0.9527 - val_iou: 0.6615\n",
      "\n",
      "Epoch 00014: saving model to seg_hrnet-14-0.5884-0.9527-0.6615.hdf5\n",
      "Epoch 15/100\n",
      "3274/3274 [==============================] - 2029s 620ms/step - loss: 0.5719 - acc: 0.9489 - iou: 0.6950 - val_loss: 0.5872 - val_acc: 0.9528 - val_iou: 0.6622\n",
      "\n",
      "Epoch 00015: saving model to seg_hrnet-15-0.5872-0.9528-0.6622.hdf5\n",
      "Epoch 16/100\n",
      "3274/3274 [==============================] - 2035s 621ms/step - loss: 0.5738 - acc: 0.9488 - iou: 0.6938 - val_loss: 0.5885 - val_acc: 0.9527 - val_iou: 0.6613\n",
      "\n",
      "Epoch 00016: saving model to seg_hrnet-16-0.5885-0.9527-0.6613.hdf5\n",
      "Epoch 17/100\n",
      "3274/3274 [==============================] - 2041s 624ms/step - loss: 0.5694 - acc: 0.9489 - iou: 0.6960 - val_loss: 0.5830 - val_acc: 0.9528 - val_iou: 0.6644\n",
      "\n",
      "Epoch 00017: saving model to seg_hrnet-17-0.5830-0.9528-0.6644.hdf5\n",
      "Epoch 18/100\n",
      "3274/3274 [==============================] - 2043s 624ms/step - loss: 0.5735 - acc: 0.9485 - iou: 0.6949 - val_loss: 0.5841 - val_acc: 0.9529 - val_iou: 0.6642\n",
      "\n",
      "Epoch 00018: saving model to seg_hrnet-18-0.5841-0.9529-0.6642.hdf5\n",
      "Epoch 19/100\n",
      "3274/3274 [==============================] - 2038s 623ms/step - loss: 0.5730 - acc: 0.9486 - iou: 0.6946 - val_loss: 0.5852 - val_acc: 0.9529 - val_iou: 0.6636\n",
      "\n",
      "Epoch 00019: saving model to seg_hrnet-19-0.5852-0.9529-0.6636.hdf5\n",
      "Epoch 20/100\n",
      "3274/3274 [==============================] - 2046s 625ms/step - loss: 0.5639 - acc: 0.9495 - iou: 0.6986 - val_loss: 0.5891 - val_acc: 0.9529 - val_iou: 0.6614\n",
      "\n",
      "Epoch 00020: saving model to seg_hrnet-20-0.5891-0.9529-0.6614.hdf5\n",
      "Epoch 21/100\n",
      "3274/3274 [==============================] - 2040s 623ms/step - loss: 0.5666 - acc: 0.9493 - iou: 0.6976 - val_loss: 0.5846 - val_acc: 0.9529 - val_iou: 0.6635\n",
      "\n",
      "Epoch 00021: saving model to seg_hrnet-21-0.5846-0.9529-0.6635.hdf5\n",
      "Epoch 22/100\n",
      "3274/3274 [==============================] - 2045s 625ms/step - loss: 0.5678 - acc: 0.9494 - iou: 0.6967 - val_loss: 0.5841 - val_acc: 0.9531 - val_iou: 0.6639\n",
      "\n",
      "Epoch 00022: saving model to seg_hrnet-22-0.5841-0.9531-0.6639.hdf5\n",
      "Epoch 23/100\n",
      "3274/3274 [==============================] - 2039s 623ms/step - loss: 0.5652 - acc: 0.9494 - iou: 0.6982 - val_loss: 0.5872 - val_acc: 0.9530 - val_iou: 0.6622\n",
      "\n",
      "Epoch 00023: saving model to seg_hrnet-23-0.5872-0.9530-0.6622.hdf5\n",
      "Epoch 24/100\n",
      "3274/3274 [==============================] - 2032s 621ms/step - loss: 0.5671 - acc: 0.9493 - iou: 0.6973 - val_loss: 0.5846 - val_acc: 0.9530 - val_iou: 0.6637\n",
      "\n",
      "Epoch 00024: saving model to seg_hrnet-24-0.5846-0.9530-0.6637.hdf5\n",
      "Epoch 25/100\n",
      "3274/3274 [==============================] - 2038s 623ms/step - loss: 0.5662 - acc: 0.9495 - iou: 0.6975 - val_loss: 0.5845 - val_acc: 0.9531 - val_iou: 0.6637\n",
      "\n",
      "Epoch 00025: saving model to seg_hrnet-25-0.5845-0.9531-0.6637.hdf5\n",
      "Epoch 26/100\n",
      "3274/3274 [==============================] - 2038s 622ms/step - loss: 0.5649 - acc: 0.9494 - iou: 0.6983 - val_loss: 0.5813 - val_acc: 0.9532 - val_iou: 0.6653\n",
      "\n",
      "Epoch 00026: saving model to seg_hrnet-26-0.5813-0.9532-0.6653.hdf5\n",
      "Epoch 27/100\n",
      "3274/3274 [==============================] - 2037s 622ms/step - loss: 0.5682 - acc: 0.9494 - iou: 0.6964 - val_loss: 0.5865 - val_acc: 0.9529 - val_iou: 0.6625\n",
      "\n",
      "Epoch 00027: saving model to seg_hrnet-27-0.5865-0.9529-0.6625.hdf5\n",
      "Epoch 28/100\n",
      "3274/3274 [==============================] - 2037s 622ms/step - loss: 0.5643 - acc: 0.9494 - iou: 0.6978 - val_loss: 0.5885 - val_acc: 0.9529 - val_iou: 0.6615\n",
      "\n",
      "Epoch 00028: saving model to seg_hrnet-28-0.5885-0.9529-0.6615.hdf5\n",
      "Epoch 29/100\n",
      "3274/3274 [==============================] - 2035s 621ms/step - loss: 0.5703 - acc: 0.9492 - iou: 0.6969 - val_loss: 0.5875 - val_acc: 0.9529 - val_iou: 0.6620\n",
      "\n",
      "Epoch 00029: saving model to seg_hrnet-29-0.5875-0.9529-0.6620.hdf5\n",
      "Epoch 30/100\n",
      "3274/3274 [==============================] - 2036s 622ms/step - loss: 0.5664 - acc: 0.9494 - iou: 0.6979 - val_loss: 0.5839 - val_acc: 0.9531 - val_iou: 0.6639\n",
      "\n",
      "Epoch 00030: saving model to seg_hrnet-30-0.5839-0.9531-0.6639.hdf5\n",
      "Epoch 31/100\n",
      "3274/3274 [==============================] - 2038s 623ms/step - loss: 0.5648 - acc: 0.9493 - iou: 0.6983 - val_loss: 0.5866 - val_acc: 0.9530 - val_iou: 0.6623\n",
      "\n",
      "Epoch 00031: saving model to seg_hrnet-31-0.5866-0.9530-0.6623.hdf5\n",
      "Epoch 32/100\n",
      "3274/3274 [==============================] - 2034s 621ms/step - loss: 0.5673 - acc: 0.9492 - iou: 0.6970 - val_loss: 0.5880 - val_acc: 0.9530 - val_iou: 0.6613\n",
      "\n",
      "Epoch 00032: saving model to seg_hrnet-32-0.5880-0.9530-0.6613.hdf5\n",
      "Epoch 33/100\n",
      "3274/3274 [==============================] - 2037s 622ms/step - loss: 0.5692 - acc: 0.9490 - iou: 0.6966 - val_loss: 0.5867 - val_acc: 0.9530 - val_iou: 0.6626\n",
      "\n",
      "Epoch 00033: saving model to seg_hrnet-33-0.5867-0.9530-0.6626.hdf5\n",
      "Epoch 34/100\n",
      "3274/3274 [==============================] - 2034s 621ms/step - loss: 0.5685 - acc: 0.9491 - iou: 0.6966 - val_loss: 0.5849 - val_acc: 0.9530 - val_iou: 0.6633\n",
      "\n",
      "Epoch 00034: saving model to seg_hrnet-34-0.5849-0.9530-0.6633.hdf5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 35/100\n",
      "3274/3274 [==============================] - 2027s 619ms/step - loss: 0.5690 - acc: 0.9490 - iou: 0.6964 - val_loss: 0.5865 - val_acc: 0.9530 - val_iou: 0.6624\n",
      "\n",
      "Epoch 00035: saving model to seg_hrnet-35-0.5865-0.9530-0.6624.hdf5\n",
      "Epoch 36/100\n",
      "3274/3274 [==============================] - 2023s 618ms/step - loss: 0.5658 - acc: 0.9494 - iou: 0.6979 - val_loss: 0.5887 - val_acc: 0.9529 - val_iou: 0.6617\n",
      "\n",
      "Epoch 00036: saving model to seg_hrnet-36-0.5887-0.9529-0.6617.hdf5\n"
     ]
    }
   ],
   "source": [
    "result = paralle_model.fit_generator(\n",
    "    generator=batch_generator(train_paths, BatchSize, flag='train'),\n",
    "    steps_per_epoch=train_steps,\n",
    "    epochs=NumEpochs,\n",
    "    verbose=1,\n",
    "    validation_data=batch_generator(val_paths, BatchSize, flag='test'),\n",
    "    validation_steps=val_steps,\n",
    "    callbacks=check_point_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/data/dh_zhu/anaconda3/lib/python3.6/site-packages/matplotlib/legend.py:326: UserWarning: Unrecognized location \"under right\". Falling back on \"best\"; valid locations are\n",
      "\tbest\n",
      "\tupper right\n",
      "\tupper left\n",
      "\tlower left\n",
      "\tlower right\n",
      "\tright\n",
      "\tcenter left\n",
      "\tcenter right\n",
      "\tlower center\n",
      "\tupper center\n",
      "\tcenter\n",
      "\n",
      "  % (loc, '\\n\\t'.join(self.codes)))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fbd78236b00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fbd70ac39e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.figure()\n",
    "for metric in metric_list:\n",
    "    plt.plot(result.epoch, result.history[metric], label=metric)\n",
    "    plt.scatter(result.epoch, result.history[metric], marker='*')\n",
    "    val_metric = 'val_' + metric\n",
    "    plt.plot(result.epoch, result.history[val_metric], label=val_metric)\n",
    "    plt.scatter(result.epoch, result.history[val_metric], marker='*')\n",
    "plt.legend(loc='under right')\n",
    "plt.show()\n",
    "\n",
    "plt.figure()\n",
    "plt.plot(result.epoch, result.history['loss'], label=\"loss\")\n",
    "plt.plot(result.epoch, result.history['val_loss'], label=\"val_loss\")\n",
    "plt.scatter(result.epoch, result.history['loss'], marker='*')\n",
    "plt.scatter(result.epoch, result.history['val_loss'], marker='*')\n",
    "plt.legend(loc='upper right')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
